/**
 * 
 */
package com.alphasystem.commerce.common.annotation.ui;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

/**
 * @author sali
 * 
 */
@Retention(RUNTIME)
@Target({ METHOD, FIELD })
public @interface Property {

	/**
	 * @return
	 */
	public Attribute[] attributes() default {};

	/**
	 * @return
	 */
	public String category() default "Basic";

	/**
	 * @return
	 */
	public String subCategory() default "Basic";

	/**
	 * Specifies the display name of the component. If
	 * <code>resourceBundle</code> exists then this will be treated as key in
	 * the resource bundle. if empty then simple name of component will be used
	 * as display name.
	 * 
	 * @return display name
	 */
	public String displayName() default "";

	/**
	 * Indicates whether this property is required.
	 * 
	 * @return true or false
	 */
	public boolean required() default false;

	/**
	 * Specifies the resource bundle.
	 * 
	 * @return name of resource bundle
	 */
	public String resourceBundle() default "";
}
